home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 August: Tool Chest / Dev.CD Aug 94.toast / New System Software Extensions / OpenDoc A6 / SOM / OpenDoc and SOM / CPlusPlus / Translat.xh < prev    next >
Encoding:
Text File  |  1994-04-19  |  5.5 KB  |  225 lines  |  [TEXT/MPS ]

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: Locrian:WWDCSun:CPlusPlus:Translat.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: somc/smemit.c
  7.  *     SOM Emitter emitxh.dll: somc/smmain.c
  8.  */
  9.  
  10. /*
  11.  * 
  12.  *  Constants
  13.  * 
  14.  */
  15.  
  16.  
  17. #ifndef SOM_ODTranslation_xh
  18. #define SOM_ODTranslation_xh
  19.  
  20. class ODTranslation;
  21.  
  22. #define ODTranslation_MajorVersion 0
  23. #define ODTranslation_MinorVersion 0
  24.  
  25. /* C++ som defs */
  26. #include <somcls.xh>
  27.  
  28. /* Include C++ parent defs */
  29. #ifndef SOM_ODObject_xh
  30. #include <ODObject.xh>
  31. #endif
  32.  
  33. #ifndef ODTranslation_API
  34. #define ODTranslation_API
  35. /*
  36.  * -- The Class API
  37.  */
  38.  
  39. /*
  40.  * Start of user-defined types:
  41.  */
  42. class ODExtension;
  43. class ODTypeSet;
  44. class ODStorageUnitView;
  45.  
  46. /*
  47.  * End of user-defined types.
  48.  */
  49.  
  50. #if applec ^ PRAGMA_LIB_EXPORT
  51. #pragma lib_export on
  52. #endif
  53.  
  54.  
  55. /* A procedure to create the ODTranslation Class */
  56. SOMEXTERN SOMClass * SOMLINK ODTranslationNewClass(
  57.         integer4 majorVersion,
  58.         integer4 minorVersion);
  59.  
  60. /* The API to the ODTranslation class object, and the methods it introduces. */
  61. typedef struct ODTranslationClassDataStructure {
  62.     SOMClass *classObject;
  63.     somMToken InitTranslation;
  64.     somMToken CanTranslate;
  65.     somMToken GetTranslationOf;
  66.     somMToken TranslateView;
  67.     somMToken Translate;
  68.     somMToken GetISOTypeFromPlatformType;
  69.     somMToken GetPlatformTypeFromISOType;
  70. } ODTranslationClassDataStructure;
  71. #ifdef SOM_NO_DATA_EXPORTS
  72.    SOMEXTERN ODTranslationClassDataStructure * ODTranslationGetClassData ( void );
  73. #   undef ODTranslationClassData
  74. #   define ODTranslationClassData (*ODTranslationGetClassData())
  75. #else
  76.    SOMEXTERN ODTranslationClassDataStructure ODTranslationClassData;
  77. #endif /* SOM_NO_DATA_EXPORTS */
  78.  
  79. #if applec ^ PRAGMA_LIB_EXPORT
  80. #pragma lib_export off
  81. #endif
  82.  
  83. #define _ODTranslation ODTranslationClassData.classObject
  84.  
  85. /* The API to parentMtabs for ODTranslation, and the instance data it introduces. */
  86. SOMEXTERN struct ODTranslationCClassDataStructure {
  87.     somMethodTabs parentMtab;
  88.     somDToken instanceDataToken;
  89. } ODTranslationCClassData;
  90.  
  91. /*
  92.  * -- Typedefs for Procedures that support Methods introduced by ODTranslation
  93.  */
  94. SOMEXTERN {
  95. typedef void   (* SOMLINK somTD_ODTranslation_InitTranslation)(ODTranslation *somSelf, Environment *ev);
  96. typedef ODTranslateResult   (* SOMLINK somTD_ODTranslation_CanTranslate)(ODTranslation *somSelf, Environment *ev,
  97.         ODType fromType);
  98. typedef ODTypeSet*   (* SOMLINK somTD_ODTranslation_GetTranslationOf)(ODTranslation *somSelf, Environment *ev,
  99.         ODType fromType);
  100. typedef ODTranslateResult   (* SOMLINK somTD_ODTranslation_TranslateView)(ODTranslation *somSelf, Environment *ev,
  101.         ODStorageUnitView* fromView,
  102.         ODStorageUnitView* toView);
  103. typedef ODTranslateResult   (* SOMLINK somTD_ODTranslation_Translate)(ODTranslation *somSelf, Environment *ev,
  104.         ODPtr fromData,
  105.         ODULong fromDataSize,
  106.         ODType fromType,
  107.         ODType toType,
  108.         ODPtr* toData,
  109.         ODULong* toDataSize);
  110. typedef ODType   (* SOMLINK somTD_ODTranslation_GetISOTypeFromPlatformType)(ODTranslation *somSelf, Environment *ev,
  111.         ODPlatformType platformType,
  112.         ODPlatformTypeSpace typeSpace);
  113. typedef ODPlatformType   (* SOMLINK somTD_ODTranslation_GetPlatformTypeFromISOType)(ODTranslation *somSelf, Environment *ev,
  114.         ODType type);
  115. }
  116.  
  117. #endif /* ODTranslation_API */
  118.  
  119.  
  120. /*
  121.  * -- Method Tokens are Thunks
  122.  */
  123. #undef somresolve_
  124. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  125.  
  126. /*
  127.  * -- The C++ Wrapper Class for ODTranslation
  128.  */
  129. class ODTranslation : public ODObject
  130. {
  131. public:
  132.  
  133. void *operator new(size_t size)
  134. {
  135.    SOM_IgnoreWarning(size);
  136.    if (!ODTranslationClassData.classObject) 
  137.       ODTranslationNewClass(ODTranslation_MajorVersion,ODTranslation_MinorVersion);
  138.    return (void *)
  139.       ((somTD_SOMClass_somNew)
  140.       somresolve_((SOMObject *)((void*)(ODTranslationClassData.classObject)),
  141.                  SOMClassClassData.somNew))
  142.          ((SOMClass *)((void*)(ODTranslationClassData.classObject)));
  143. }
  144.  
  145. void operator delete(void * obj)
  146. {
  147.    ((SOMObject *)obj)->somFree();
  148. }
  149.  
  150. /* public method: InitTranslation */
  151. void   InitTranslation(Environment *ev)
  152. {
  153.    SOM_Resolve(this,ODTranslation,InitTranslation)
  154.     (this,ev);
  155. }
  156.  
  157.  
  158. /* public method: CanTranslate */
  159. ODTranslateResult   CanTranslate(Environment *ev,
  160.         ODType fromType)
  161. {
  162.    return SOM_Resolve(this,ODTranslation,CanTranslate)
  163.     (this,ev,fromType);
  164. }
  165.  
  166.  
  167. /* public method: GetTranslationOf */
  168. ODTypeSet*   GetTranslationOf(Environment *ev,
  169.         ODType fromType)
  170. {
  171.    return SOM_Resolve(this,ODTranslation,GetTranslationOf)
  172.     (this,ev,fromType);
  173. }
  174.  
  175.  
  176. /* public method: TranslateView */
  177. ODTranslateResult   TranslateView(Environment *ev,
  178.         ODStorageUnitView* fromView,
  179.         ODStorageUnitView* toView)
  180. {
  181.    return SOM_Resolve(this,ODTranslation,TranslateView)
  182.     (this,ev,fromView,toView);
  183. }
  184.  
  185.  
  186. /* public method: Translate */
  187. ODTranslateResult   Translate(Environment *ev,
  188.         ODPtr fromData,
  189.         ODULong fromDataSize,
  190.         ODType fromType,
  191.         ODType toType,
  192.         ODPtr* toData,
  193.         ODULong* toDataSize)
  194. {
  195.    return SOM_Resolve(this,ODTranslation,Translate)
  196.     (this,ev,fromData,fromDataSize,fromType,toType,toData,toDataSize);
  197. }
  198.  
  199.  
  200. /* public method: GetISOTypeFromPlatformType */
  201. ODType   GetISOTypeFromPlatformType(Environment *ev,
  202.         ODPlatformType platformType,
  203.         ODPlatformTypeSpace typeSpace)
  204. {
  205.    return SOM_Resolve(this,ODTranslation,GetISOTypeFromPlatformType)
  206.     (this,ev,platformType,typeSpace);
  207. }
  208.  
  209.  
  210. /* public method: GetPlatformTypeFromISOType */
  211. ODPlatformType   GetPlatformTypeFromISOType(Environment *ev,
  212.         ODType type)
  213. {
  214.    return SOM_Resolve(this,ODTranslation,GetPlatformTypeFromISOType)
  215.     (this,ev,type);
  216. }
  217.  
  218.  
  219.  
  220. };   /* ODTranslation */
  221.  
  222.  
  223.  
  224. #endif       /* SOM_ODTranslation_xh */
  225.